<?php
/**
 * Tidypics Delete Photo Tag
 *
 */

gatekeeper();
action_gatekeeper();

$image_guid = get_input('image_guid');
$tags = get_input('tags');


if ($image_guid == 0) {
	register_error(elgg_echo("tidypics:phototagging:error"));
	forward($_SERVER['HTTP_REFERER']);
}

$image = get_entity($image_guid);
if (!$image) {
	register_error(elgg_echo("tidypics:phototagging:error"));
	forward($_SERVER['HTTP_REFERER']);
}

foreach ($tags as $id => $value) {
	// delete normal tag if it exists
	if (is_array($image->tags)) {
		$index = array_search($value, $image->tags);
		if ($index !== false) {
			$tagarray = $image->tags;
			unset($tagarray[$index]);
			$image->clearMetadata('tags');
			$image->tags = $tagarray;
		}
	} else {
		if ($value === $image->tags) {
			$image->clearMetadata('tags');
		}
	}

	// delete relationship if this tag is a user
	$annotation = get_annotation($id);
	$photo_tag = unserialize($annotation->value);
	if ($photo_tag->type == 'user') {
		remove_entity_relationship($photo_tag->value, 'phototag', $image_guid);
	}

	// delete the photo tag annotation
	delete_annotation($id);
}

system_message(elgg_echo("tidypics:deletetag:success"));

forward($_SERVER['HTTP_REFERER']);
